/**
 * Created by baidm in 2022/7/3 on 14:36
 */
class NumberUtil {
  constructor() {
  }

  /**
   * 十进制转换为二进制
   * @param num
   * @returns {string}
   */
  binaryNum(num) {
    return num.toString(2)
  }

  /**
   * 十进制转换为十六进制
   * @param num
   * @returns {string}
   */
  hexadecimalNum(num) {
    return num.toString(16)
  }

  /**
   * 保留指定位数小数
   * @param num
   * @param n
   * @returns {string}
   */
  fixedN(num, n = 0) {
    return num.toFixed(n)
  }

  /**
   * 生成指定范围内的随机数
   * randomNum(1, 10) // 6
   * randomNum(10, 20) // 11
   * @param min
   * @param max
   * @returns {*}
   */
  randomNum(min, max) {
    return Math.floor(Math.random() * (max - min + 1)) + min;
  }

  /**
   * 格式化货币
   * formatMoney('123456789') // '123,456,789'
   * formatMoney('123456789.123') // '123,456,789.123'
   * formatMoney('123') // '123'
   * @param money
   * @returns {*}
   */
  formatMoney(money) {
    return money.toLocaleString()
    // return money.replace(new RegExp(`(?!^)(?=(\\d{3})+${money.includes('.') ? '\\.' : '$'})`, 'g'), ',')
  }

  /**
   * 生成uuid
   * 注：此方法在window下执行
   * @returns {string}
   */
  getUuid() {
    const temp_url = URL.createObjectURL(new Blob())
    const uuid = temp_url.toString()
    URL.revokeObjectURL(temp_url) //释放这个url
    return uuid.substring(uuid.lastIndexOf('/') + 1)
  }
}

export default new NumberUtil()
